GroupBy(TSource, TKey, TResult) Method (ParallelQuery(TSource), Func(TSource, TKey), Func(TKey, IEnumerable(TSource), TResult), IEqualityComparer(TKey))

Task Parallel System.Threading

Groups in parallel the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer.

Namespace:  System.Linq
Assembly:  System.Threading (in System.Threading.dll)

Syntax

Visual Basic (Declaration)
Public Shared Function GroupBy(Of TSource, TKey, TResult) ( _
	source As ParallelQuery(Of TSource), _
	keySelector As Func(Of TSource, TKey), _
	resultSelector As Func(Of TKey, IEnumerable(Of TSource), TResult), _
	comparer As IEqualityComparer(Of TKey) _
) As ParallelQuery(Of TResult)
C#
public static ParallelQuery<TResult> GroupBy<TSource, TKey, TResult>(
	ParallelQuery<TSource> source,
	Func<TSource, TKey> keySelector,
	Func<TKey, IEnumerable<TSource>, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)

Parameters

source
Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence whose elements to group.
keySelector
Type: System..::.Func<(Of <(TSource, TKey>)>)
A function to extract the key for each element.
resultSelector
Type: System..::.Func<(Of <(TKey, IEnumerable<(Of <(TSource>)>), TResult>)>)
A function to create a result value from each group.
comparer
Type: System.Collections.Generic..::.IEqualityComparer<(Of <(TKey>)>)
An IEqualityComparer{TKey} to compare keys.

Type Parameters

TSource
The type of the elements of source.
TKey
The type of the key returned by keySelector.
TResult
The type of the result value returned by resultSelector.

Return Value

An ParallelQuery<IGrouping<TKey, TResult>> in C# or ParallelQuery(Of IGrouping(Of TKey, TResult)) in Visual Basic where each IGrouping<(Of <(TKey, TResult>)>) object contains a collection of objects of type TResult and a key.

Exceptions

ExceptionCondition
System..::.ArgumentNullException source or keySelector or resultSelector is a null reference (Nothing in Visual Basic).

See Also